Done (this pass)
----------------

* adamcore + fujinet-firmware are pinned submodules under third_party/,
  provided automatically at configure time (submodule init, or a clone when
  the tree has no git metadata). ADAMCORE_SRC / FUJINET_SRC still override.
* The FujiNet runtime is built by the normal build (WITH_FUJINET, default ON
  off-Windows) into tools/fujinet/work/out and installed with the app.
* cmake --install: GNUInstallDirs is now included at the top level, so the
  desktop entry lands in <prefix>/share/applications instead of /applications.
* GNOME launcher + icons: hicolor 16..512 rendered from the launcher art
  (tools/icons/make-icons.py), plus desktop-entry and AppStream validation
  tests.
* Flatpak: manifest moved to build-aux/flatpak/ (where GNOME Builder looks)
  and builds SDL3 + mbedTLS + the python webui deps + adamcore +
  fujinet-firmware from declared sources -- verified end to end, and the app
  installs as "FujiNet Go Adam" with its icon.
* Windows: a Winsock backend for adamcore's net.h so the MinGW build links
  at all -- carried here as a stand-in, now upstreamed and taken from
  adamcore (cd38ead); native Win32 debugger window (F12); app manifest for
  comctl32 v6 + per-monitor DPI; checked-in mingw-w64 cross toolchain.

Done (Windows FujiNet pass)
---------------------------

* fujinet.dll builds under MinGW and the Win32 app runs the same in-process
  FujiNet as the other platforms: __declspec(dllexport) entry points instead
  of a version script, PREFIX "" so the file is fujinet.dll, the MinGW/C++
  runtimes linked in (the DLL imports only system DLLs), and Windows shims
  for the entry wrapper's pipe()/setenv()/thread naming.
* Two upstream portability gaps patched in the staged tree and worth sending
  upstream: `uint` in lib/device/adamnet/modem.h, and adamFuji.cpp calling
  setenv() (the same _putenv_s shim lib/clock/Clock.cpp already carries).
* The session looks for the runtime beside the executable first, which is
  the layout the Windows artifact ships (exe + fujinet.dll + fujinet/).
* Verified by cross-compiling from Linux and running under wine: CONFIG
  boots over BoIP (Winsock), web UI up, 63 blocks served.

Next
----

* Windows debugger polish: the VDP page does not resize its views, and
  register/memory editing is Enter-to-apply only.
* Windows: no SAM audio path yet (the DLL exports it; the frontend does not
  pump it), and no gamepad-specific testing on real hardware.
* Flathub submission (AppStream metadata is in place); flatpak for the KDE
  frontend.
* Keep the versions current: the flatpak targets the GNOME 49 runtime (48
  went end-of-life in March 2026) and CI builds SDL release-3.4.12 -- both
  need a bump when the next runtime/SDL ships. `flatpak remote-ls flathub
  --runtime | grep org.gnome.Platform` lists what is available.


GNOME
-----

Installing under GNOME-OS doesn't cause the application to show up in the applications menu. It should be classified as a game.

There are no screenshots in the flatpak's description page.


